package com.upsuns.fileop;

import java.io.File;

import com.upsuns.entity.FileEntity;
import com.upsuns.utils.Constants;

/**
 *@Description:<p>读取文件信息，实例化FileEntity</p>
 *@author 王旭
 *@time 2016-1-30 下午5:00:06
 */
public class FileInfoReader {
	
	public String path;
	
	public File file;

	/**
	 * 在读取本地文件时使用
	 * @param path
	 */
	public FileInfoReader(String path) {
		super();
		this.path = path;
		this.file = new File(path);
	}
	
	
	/**
	 * 实例化文件实体
	 * @return
	 */
	public FileEntity getFileEntity() {
		
		FileEntity fileEntity = new FileEntity();
		
		fileEntity.setFile(file);
		fileEntity.setFileName(file.getName());
		fileEntity.setFileSize(file.length());
		
		long per = file.length() / Constants.THREAD_NUM; //每个线程的需要处理的文件长度
		
		long rest = file.length() % Constants.THREAD_NUM; //剩余文件长度
		
		fileEntity.setLenPerThread(per);
		
		fileEntity.setLenRest(rest);
		
		
		return fileEntity;
	}
	
	
	/**
	 * 实例化文件实体，在文件接收是使用。
	 * @return
	 */
	public FileEntity getFileEntity(long size) {
		
		FileEntity fileEntity = new FileEntity();
		
		fileEntity.setFile(file);
		fileEntity.setFileName(file.getName());
		fileEntity.setFileSize(size);
		
		long per = size / Constants.THREAD_NUM; //每个线程的需要处理的文件长度
		
		long rest = size % Constants.THREAD_NUM; //剩余文件长度
		
		fileEntity.setLenPerThread(per);
		
		fileEntity.setLenRest(rest);
		
		
		return fileEntity;
	}
	
	
	
	

}
